import pandas as pd


class ExcelFileUtil:
    """
    Excel 文件操作工具类。
    """

    def __init__(self, file_path, sheet_name, data_ls, header_row=0, use_cols=None, encoding='utf-8'):
        self.file_path = file_path
        self.sheet_name = sheet_name
        self.header_row = header_row
        self.use_cols = use_cols
        self.data_ls = data_ls
        self.encoding = encoding

    def read_excel(self):
        """
        读取 Excel 文件中的数据。
       :return: 返回读取到的数据。
       """
        try:

            # 读取 Excel 文件中的数据
            df = pd.read_excel(
                io=self.file_path,
                sheet_name=self.sheet_name,
                header=self.header_row,
                usecols=self.use_cols)
            return df.values.tolist()
        except FileNotFoundError as e:
            raise FileNotFoundError(f"文件未找到: {self.file_path}")
        except Exception as e:
            raise Exception(f"读取 Excel 文件时发生错误: {e}")

    def write_excel(self):
        """
        将数据写入 Excel 文件。
        :return:
        """
        try:
            # 将数据写入 Excel 文件
            df = pd.DataFrame(self.data_ls)
            df.to_excel(self.file_path, sheet_name=self.sheet_name, index=False, header=False)
            print(f"数据已成功写入文件 {self.file_path}")
        except FileNotFoundError as e:
            raise FileNotFoundError(f"文件未找到: {self.file_path}")
        except Exception as e:
            raise Exception(f"写入 Excel 文件时发生错误: {e}")


if __name__ == '__main__':
    # # 创建 ExcelFileUtil 对象
    # excel_util = ExcelFileUtil(file_path='../work.xlsx', sheet_name='Sheet1', header_row=0)
    # # 读取 Excel 文件中的数据
    # data = excel_util.read_excel()
    data = [
        ['Name', 'Age', 'City'],
        ['Alice', 25, 'New York'],
        ['Bob', 30, 'San Francisco'],
        ['Charlie', 35, 'Chicago']
    ]
    # 创建 ExcelFileUtil 对象
    excel_util = ExcelFileUtil(file_path='../work.xlsx', sheet_name='Sheet1', data_ls=data, header_row=0)
    # 将数据写入 Excel 文件
    excel_util.write_excel()
    print(data)
